const puppeteer = require("puppeteer")
const pagePool = [];
let browser = null;
/**
 * 初始化创建页面池
 */
async function initPool(){
    browser = await puppeteer.launch();
    for(let i = 0; i < 5; i++){
        const page = await browser.newPage();
        pagePool.push(page)
    }
}

/**
 * 获取一个page对象
 */
function getPage(){
    if(pagePool.length){
        return pagePool.shift();
    }else{
        return null;
    }
}

/**
 * 将page对象归还入队
 */
function closePage(page){
    if(!!page){
        pagePool.push(page)
    }
}

async function closeSource(){
    if(browser !== null){
        await browser.close()
    }
}

function getBrowser(){
    return browser;
}



module.exports = {
    initPool,
    getPage,
    closePage,
    closeSource,
    getBrowser
}